Contact information:

Nebu Pookins (nebu@nebupookins.net)

Summary:

Academic/Employment History:

Major Projects:

RnD Tax Credits

Time-line:
February 2011 to present
Overview:
Develop from scratch a web application to allow companies to keep track of their experimental development and scientific research efforts for the purposes of claiming tax credits.
Technologies used:
  • Java, Clojure, Scala, JavaScript
  • Play Framework, ExpressJS, Node.JS
  • Amazon EC2, Google App Engine, Heroku
  • BigTable, ProsgreSQL, MySQL, CouchDB, MongoDB
  • JQuery, Socket.IO, DataTable, TreeTable
Key Accomplishments beyond original scope of the project:
  • We actually ended up pushing the boundaries of the scope of this project several times, such as looking at a "severless" peer-to-peer replication architecture, which explains why there were so many competing (almost mutually exclusive) technologies involved in this project.

AE2010 - South Carolina Web App for Managing Employee Insurance Information

Time-line:
April 2010 to February 2011
Overview:
The business-rules of the application (who is allowed to apply for what insurance plans, etc.) changes every year due to federal government legislation changes. The project consisted of implementing the new rules for the 2010-2011 version of the site.
Technologies used:
  • JSPs, Servlet, Struts on Tomcat.
  • JavaScript & AJAX via Prototype and YUI.
Challenges:
  • I had no prior experience with any of these technologies, and learned them as I went.
  • The client had lost several key staff members, and so there were several large components for which no one had any familiarity, both in terms of how the technology works and what the desired business functionalities were.
  • The web app had to communicate to a legacy backend implemented in NATURAL and ADABASE, using undocumented APIs.
  • The initial state of the source code, as handed to me, was such that the build scripts failed with compile errors, and all of the unit tests were failing due to not being maintained as the requirements changed.
Key accomplishments beyond original scope of the project:
  • Reverse engineered their semi-manual build procedure by examining scripts and interviewing people, and converted to a fully automated build system.
  • Reverse engineered the transaction state-transition flow and provided documentation to the client that explained their own workflow to them.

IRIS - Universal Source Code Analysis Tool

Time-line
April 2005 to February 2011
Overview:
Benchmark Canada's flagship product for source code analysis of legacy code, to aid in modernizing (e.g. porting COBOL code to .NET)
Technologies used:
  • Java, Eclipse, EFS, EMF, CDO, XMI, OSGi, etc...
  • MDA, KDM, SMM, STM, VMF, VSM, etc...
  • JTB, JavaCC, ANTLR
  • Etc. too many to list.
Challenges:
  • This is an open area of research, and so frequently we are the first ones answering the questions being investigated, and thus cannot rely on Google or other typical tricks for figuring out how to solve a given problem.
  • Because we are working at the very limits of source-code analysis, we are often faced with problems which have literally been proven to be impossible to solve (see "Halting Problem" or "Rice's Theorem").
  • In order to be able to implement source code analysis for a language, we must first learn that language. And thus we must be able to quickly learn new languages constantly, to the level of precision that a compiler-writer would need to know said language.
Key Accomplishments beyond original scope of the project:
  • Converted from previous practice of communicating design documents via e-mail to using a centralized wiki, so that everyone always had access to the latest revision of any given document, and lowered barriers to contributions from anyone.
  • Established several internal PowerPoint presentations, tutorials, and lesson plans so that new members to the IRIS team could quickly get up to speed with the dizzying number of technologies involved.

JTBRPG - A Tool to Assist in Developing Role Playing Games.

Timeline:
2008 to 2010
Overview:
An open source personal project designed to allow users to create tile-based role playing games without requiring any programming knowledge.
Technologies used:
  • Java
Key Accomplishments beyond original scope of the project:
  • Mentioned as a valuable tool for game development in Andrew Davison's "Killer Game Programming in Java" (ISBN 0596007302)

NNR - Videogame scores tracking web application

Timeline:
2008 to 2010
Overview:
A personal project designed to track scores in the "Dance Dance Revolution" video game, and then "recommending" an opponent of a similar skill level to challenge/practice with.
Technologies used:
  • LAMP (Linux, Apache, MySQL, PHP)
Key Accomplishments beyond original scope of the project:
  • Managed to attract over 3500 users worldwide (from Canada to Japan) solely from word of mouth.
  • Spawned a whole series of copy-cat sites.
  • The spiritual-sequel to the videogame, "In The Groove", added as a new feature direct support for uploading scores to websites, thus showing the influence of this site.
  • Ownership of the site sold for an undisclosed sum.

ALM - Web infrasturcture for ALM tools.

Timeline:
April 2010 to February 2011
Overview:
An infrastructure for ALM web tools (bug trackers, requirements management, project planning, etc.) to integrate together. See http://www.youtube.com/watch?v=B2vqL8fujgE
Technologies used:
  • OSLC, ALM
  • RESTful web services, Apache Sling, IBM Jazz
  • PHP
Challenges:
  • OSLC is a relatively new initiative, and the standards and specifications are still being established.